import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import VueRouter from 'vue-router'

// 其他插件导入...
import websocketPlugin from './assets/js/websocketPlugin'
import exportUtils from './assets/js/exportUtils'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

// 初始化 Vue 插件
Vue.prototype.$bus = new Vue()
Vue.use(ElementUI)
Vue.use(websocketPlugin)
Vue.prototype.$export = exportUtils
Vue.config.productionTip = false

// ========== 核心修改：彻底静默所有路由错误 ==========
const originalPush = VueRouter.prototype.push
const originalReplace = VueRouter.prototype.replace

// 重写 push 方法（捕获所有错误，不抛出）
VueRouter.prototype.push = function (location) {
  return originalPush.call(this, location).catch(() => {
    // 完全忽略所有错误
    return Promise.resolve() // 返回一个 resolved Promise 确保链式调用不中断
  })
}

// 重写 replace 方法（同上）
VueRouter.prototype.replace = function (location) {
  return originalReplace.call(this, location).catch(() => {
    return Promise.resolve()
  })
}

// 全局错误监听（兜底处理）
router.onError(() => {
  // 空函数，不处理任何错误
})

// 启动应用
new Vue({
  router,
  store,
  render: h => h(App),
  mounted() {
    // 移除 loading 遮罩
    // const loader = document.querySelector('.loader-container');
    // if (loader) {
    //   loader.parentNode.removeChild(loader);
    // }
  }
}).$mount('#app')